package cn.antblog.multi.datasource.annotation;

import cn.antblog.multi.datasource.constant.Const;

import java.lang.annotation.*;

/**
 * @author yangjy
 * @version 1.0
 * @description: 数据源注解
 * @date 2022/11/22 10:57
 */
@Target(ElementType.METHOD)
/*
    作用是定义被它所注解的注解保留多久 一共有三种策略，定义在RetentionPolicy枚举中
    source：注解只保留在源文件，当Java文件编译成class文件的时候，注解被遗弃；被编译器忽略
    class：注解被保留到class文件，但jvm加载class文件时候被遗弃，这是默认的生命周期
    runtime：注解不仅被保存到class文件中，jvm加载class文件之后，仍然存在
 */
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataSource {

    String value() default Const.DEFAULT;
}
